_require "../OS/os-path-fn.smi"
_require local "../../../basis/main/Char.smi"
_require local "../../../basis/main/CharVector.smi"
_require "../../../basis/main/Substring.smi"
_require local "../../../basis/main/String.smi"

structure SMLSharp_SMLNJ_PathBase =
struct
  exception Path
  datatype arc_kind = Null | Parent | Current | Arc of string
  val classify : string -> arc_kind
  val parentArc : string
  val currentArc : string
  val validArc : string -> bool
  val validVolume : bool * Substring.substring -> bool
  val splitVolPath : string
                     -> bool * Substring.substring * Substring.substring
  val joinVolPath : bool * string * string -> string
  val arcSepChar : char
  val sameVol : string * string -> bool
end

structure SMLSharp_SMLNJ_OS_Path =
  SMLSharp_SMLNJ_OS_PathFn (SMLSharp_SMLNJ_PathBase)
